diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php
index 85505ce..4238e37 100644
--- a/system/database/DB_forge.php
+++ b/system/database/DB_forge.php
@@ -207,12 +207,7 @@
 	 */
 	public function drop_database($db_name)
 	{
-		if ($db_name === '')
-		{
-			show_error('A table name is required for that operation.');
-			return FALSE;
-		}
-		elseif ($this->_drop_database === FALSE)
+		if ($this->_drop_database === FALSE)
 		{
 			return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE;
 		}
@@ -242,13 +237,8 @@
 	 * @param	bool	$primary
 	 * @return	CI_DB_forge
 	 */
-	public function add_key($key = '', $primary = FALSE)
+	public function add_key($key, $primary = FALSE)
 	{
-		if (empty($key))
-		{
-			show_error('Key information is required for that operation.');
-		}
-
 		if ($primary === TRUE && is_array($key))
 		{
 			foreach ($key as $one)
@@ -279,13 +269,8 @@
 	 * @param	array	$field
 	 * @return	CI_DB_forge
 	 */
-	public function add_field($field = '')
+	public function add_field($field)
 	{
-		if (empty($field))
-		{
-			show_error('Field information is required.');
-		}
-
 		if (is_string($field))
 		{
 			if ($field === 'id')
@@ -328,7 +313,7 @@
 	 * @param	array	$attributes	Associative array of table attributes
 	 * @return	bool
 	 */
-	public function create_table($table = '', $if_not_exists = FALSE, array $attributes = array())
+	public function create_table($table, $if_not_exists = FALSE, array $attributes = array())
 	{
 		if ($table === '')
 		{
@@ -575,18 +560,10 @@
 	 * @param	string	$_after	Column for AFTER clause (deprecated)
 	 * @return	bool
 	 */
-	public function add_column($table = '', $field = array(), $_after = NULL)
+	public function add_column($table, $field, $_after = NULL)
 	{
-		if ($table === '')
-		{
-			show_error('A table name is required for that operation.');
-		}
-
 		// Work-around for literal column definitions
-		if ( ! is_array($field))
-		{
-			$field = array($field);
-		}
+		is_array($field) OR $field = array($field);
 
 		foreach (array_keys($field) as $k)
 		{
@@ -626,18 +603,8 @@
 	 * @param	string	$column_name	Column name
 	 * @return	bool
 	 */
-	public function drop_column($table = '', $column_name = '')
+	public function drop_column($table, $column_name)
 	{
-		if ($table === '')
-		{
-			show_error('A table name is required for that operation.');
-		}
-
-		if ($column_name === '')
-		{
-			show_error('A column name is required for that operation.');
-		}
-
 		$sql = $this->_alter_table('DROP', $this->db->dbprefix.$table, $column_name);
 		if ($sql === FALSE)
 		{
@@ -656,18 +623,10 @@
 	 * @param	string	$field	Column definition
 	 * @return	bool
 	 */
-	public function modify_column($table = '', $field = array())
+	public function modify_column($table, $field)
 	{
-		if ($table === '')
-		{
-			show_error('A table name is required for that operation.');
-		}
-
 		// Work-around for literal column definitions
-		if ( ! is_array($field))
-		{
-			$field = array($field);
-		}
+		is_array($field) OR $field = array($field);
 
 		foreach (array_keys($field) as $k)
 		{
diff --git a/user_guide_src/source/database/forge.rst b/user_guide_src/source/database/forge.rst
index 371397d..59a6591 100644
--- a/user_guide_src/source/database/forge.rst
+++ b/user_guide_src/source/database/forge.rst
@@ -185,7 +185,6 @@
 	// gives KEY `blog_name_blog_label` (`blog_name`, `blog_label`)
 
 
-
 Creating a table
 ================
 
@@ -242,7 +241,6 @@
 	// gives ALTER TABLE old_table_name RENAME TO new_table_name
 
 
-
 ****************
 Modifying Tables
 ****************
@@ -318,104 +316,93 @@
 Class Reference
 ***************
 
-.. class:: DB_forge
+.. class:: CI_DB_forge
 
-	.. method:: __construct(&$db)
+	.. method:: add_column($table[, $field = array()[, $_after = NULL]])
 
-		:param	object	$db: Database object
-		:returns:	DB_forge object for the specified database
-		:rtype:	DB_forge
-
-		Initializes a database forge.
-
-	.. method:: add_column($table = '', $field = array(), $_after = NULL)
-
-		:param	string	$table: Table name
-		:param	array	$field: Column definitions
+		:param	string	$table: Table name to add the column to
+		:param	array	$field: Column definition(s)
 		:param	string	$_after: Column for AFTER clause (deprecated)
-                :returns:   TRUE on success, FALSE on failure
-		:rtype:	boolean
+		:returns:	TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Add a column to a table. Usage:  See `Adding a Column to a Table`_.
+		Adds a column to a table. Usage:  See `Adding a Column to a Table`_.
 
-	.. method:: add_field($field = '')
+	.. method:: add_field($field)
 
-		:param	array	$field: Field to add
-                :returns:   DB_forge instance
-		:rtype:	object
+		:param	array	$field: Field definition to add
+		:returns:	CI_DB_forge instance (method chaining)
+		:rtype:	CI_DB_forge
 
-                Add a field to the set that will be used to create a table. Usage:  See `Adding fields`_.
+                Adds a field to the set that will be used to create a table. Usage:  See `Adding fields`_.
 
-	.. method:: add_key($key = '', $primary = FALSE)
+	.. method:: add_key($key[, $primary = FALSE])
 
 		:param	array	$key: Name of a key field
-                :param  boolean $primary:   TRUE if this key is to be a primary key
-                :returns:   DB_forge instance
-		:rtype:	object
+		:param	bool	$primary: Set to TRUE if it should be a primary key or a regular one
+		:returns:	CI_DB_forge instance (method chaining)
+		:rtype:	CI_DB_forge
 
-                Specify a key field to be used to create a table. Usage:  See `Adding Keys`_.
+		Adds a key to the set that will be used to create a table. Usage:  See `Adding Keys`_.
 
 	.. method:: create_database($db_name)
 
 		:param	string	$db_name: Name of the database to create
-                :returns:   TRUE on success, FALSE on failure
-		:rtype:	boolean
+		:returns:	TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Create a new database. Usage:  See `Creating and Dropping Databases`_.
+		Creates a new database. Usage:  See `Creating and Dropping Databases`_.
 
-	.. method:: create_table($table = '', $if_not_exists = FALSE, array $attributes = array())
+	.. method:: create_table($table[, $if_not_exists = FALSE[, array $attributes = array()]])
 
 		:param	string	$table: Name of the table to create
-		:param	string	$if_not_exists: TRUE to add an 'IF NOT EXISTS' clause
-		:param	string	$attributes: Associative array of table attributes
-                :returns:   DB_driver on success, FALSE on failure
-		:rtype:	mixed
+		:param	string	$if_not_exists: Set to TRUE to add an 'IF NOT EXISTS' clause
+		:param	string	$attributes: An associative array of table attributes
+		:returns:  TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Create a new table. Usage:  See `Creating a table`_.
+		Creates a new table. Usage:  See `Creating a table`_.
 
-	.. method:: drop_column($table = '', $column_name = '')
+	.. method:: drop_column($table, $column_name)
 
 		:param	string	$table: Table name
-		:param	array	$column_name: Column to drop
-                :returns:   DB_driver on success, FALSE on failure
-		:rtype:	mixed
+		:param	array	$column_name: The column name to drop
+		:returns:	TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Drop a column from a table. Usage:  See `Dropping a Column From a Table`_.
+		Drops a column from a table. Usage:  See `Dropping a Column From a Table`_.
 
 	.. method:: drop_database($db_name)
 
 		:param	string	$db_name: Name of the database to drop
-                :returns:   TRUE on success, FALSE on failure
-		:rtype:	boolean
+		:returns:	TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Drop a database. Usage:  See `Creating and Dropping Databases`_.
+		Drops a database. Usage:  See `Creating and Dropping Databases`_.
 
-	.. method:: drop_table($table_name, $if_exists = FALSE)
+	.. method:: drop_table($table_name[, $if_exists = FALSE])
 
-		:param	string	$table: Name of the table to create
-		:param	string	$if_exists: TRUE to add an 'IF EXISTS' clause
-                :returns:   DB_driver on success, FALSE on failure
-		:rtype:	mixed
+		:param	string	$table: Name of the table to drop
+		:param	string	$if_exists: Set to TRUE to add an 'IF EXISTS' clause
+		:returns:	TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Drop a table. Usage:  See `Dropping a table`_.
+		Drops a table. Usage:  See `Dropping a table`_.
 
-	.. method:: modify_column($table = '', $field = array())
+	.. method:: modify_column($table, $field)
 
 		:param	string	$table: Table name
-		:param	array	$field: Column definitions
-		:returns:   TRUE on success, FALSE on failure
-		:rtype:	boolean
+		:param	array	$field: Column definition(s)
+		:returns:	TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Modify a column in a table. Usage:  See `Modifying a Column in a Table`_.
+		Modifies a table column. Usage:  See `Modifying a Column in a Table`_.
 
 	.. method:: rename_table($table_name, $new_table_name)
 
-		:param	string	$table: Name of the table
+		:param	string	$table: Current of the table
 		:param	string	$new_table_name: New name of the table
-                :returns:   DB_driver on success, FALSE on failure
-		:rtype:	mixed
+		:returns:	TRUE on success, FALSE on failure
+		:rtype:	bool
 
-                Rename a table. Usage:  See `Renaming a table`_.
-
-
-
+		Renames a table. Usage:  See `Renaming a table`_.
\ No newline at end of file
diff --git a/user_guide_src/source/database/utilities.rst b/user_guide_src/source/database/utilities.rst
index d15cef0..0d8137d 100644
--- a/user_guide_src/source/database/utilities.rst
+++ b/user_guide_src/source/database/utilities.rst
@@ -9,7 +9,6 @@
     :local:
     :depth: 2
 
-
 ******************************
 Initializing the Utility Class
 ******************************
@@ -248,66 +247,70 @@
 Class Reference
 ***************
 
-.. class:: DB_utility
+.. class:: CI_DB_utility
 
-	.. method:: backup($params)
+	.. method:: backup([$params = array()])
 
-		:param	array	$params: associative array of backup preferences
+		:param	array	$params: An associative array of options
 		:returns:	void
-                :rtype:         void
+		:rtype:	void
 
-		Perform a database backup, per user preferences
-
-        .. method:: csv_from_results($query, $delim = ',', $newline = "\n", $enclosure = '"')
-
-                :param  object  $query:   DB_result with data to backup
-                :param  string  $delim:  Delimniter character for the CSV file, default is ','
-                :param  string  $newline:    Character to use for newlines, default is "\n"
-                :param  string  $enclosure:  Delimiter used for enclosure, default is '"'
-                :returns:   The generated CSV file as a string
-                :rtype:     string
+		Perform a database backup, per user preferences.
 
 	.. method:: database_exists($database_name)
 
-		:param	string	$database_name: name of the database to check for
+		:param	string	$database_name: Database name
 		:returns:	TRUE if the database exists, FALSE otherwise
-                :rtype:         boolean
+		:rtype:	bool
 
-		Check for the existence of a database
+		Check for the existence of a database.
 
 	.. method:: list_databases()
 
 		:returns:	Array of database names found
-                :rtype:         array
+		:rtype:	array
 
-		Retrieve all the database names
+		Retrieve a list of all the database names.
 
 	.. method:: optimize_database()
 
-		:returns:	Array of optimization messages, FALSE on failure
-                :rtype:         array
+		:returns:	Array of optimization messages or FALSE on failure
+		:rtype:	array
 
-		Optimizes a database
+		Optimizes the database.
 
 	.. method:: optimize_table($table_name)
 
-                :param  string  $table_name:    Name of the table to optimize
-		:returns:	Array of optimization messages, FALSE on failure
-                :rtype:         array
+		:param	string	$table_name:	Name of the table to optimize
+		:returns:	Array of optimization messages or FALSE on failure
+		:rtype:	array
 
-		Optimizes a database table
+		Optimizes a database table.
 
 	.. method:: repair_table($table_name)
 
-                :param  string  $table_name:    Name of the table to repair
-		:returns:	Array of repair messages, FALSE on failure
-                :rtype:         array
+		:param	string	$table_name:	Name of the table to repair
+		:returns:	Array of repair messages or FALSE on failure
+		:rtype:	array
 
-		Repairs a database table
+		Repairs a database table.
 
-        .. method:: xml_from_results($query, $params)
+	.. method:: csv_from_results($query[, $delim = ','[, $newline = "\n"[, $enclosure = '"']]])
 
-                :param  object  $query:   DB_result with data to backup
-                :param  array  $params:  Associative array of preferences
-                :returns:   The generated XML document as a string
-                :rtype:         string
+		:param	object	$query:	A database result object
+		:param	string	$delim: The CSV field delimiter to use
+		:param	string	$newline: The newline character to use
+		:param	string	$enclosure: The enclosure delimiter to use
+		:returns:	The generated CSV file as a string
+		:rtype:	string
+
+		Translates a database result object into a CSV document.
+
+	.. method:: xml_from_results($query[, $params = array()])
+
+		:param	object	$query: A database result object
+		:param	array	$params: An associative array of preferences
+		:returns:	The generated XML document as a string
+		:rtype:	string
+
+		Translates a database result object into an XML document.
\ No newline at end of file
diff --git a/user_guide_src/source/libraries/encryption.rst b/user_guide_src/source/libraries/encryption.rst
index f29ebf4..2d0ee23 100644
--- a/user_guide_src/source/libraries/encryption.rst
+++ b/user_guide_src/source/libraries/encryption.rst
@@ -533,6 +533,7 @@
 		:param	int	$length: Optional output length
 		:param	string	$info: Optional context/application-specific info
 		:returns:	A pseudo-random key or FALSE on failure
+		:rtype:	string
 
 		Derives a key from another, presumably weaker key.
 
